#ifndef OCCT_CAD_OCCSHAPESELECTOR_H
#define OCCT_CAD_OCCSHAPESELECTOR_H
#include "OccGeoSelector.h"
#include "TopoDS_Shape.hxx"
#include "TopoDS.hxx"

class OccShapeSelector :public OccGeoSelector {
public:

    OccShapeSelector();

    ~OccShapeSelector();


public:
    //添加选中的shape
    bool addSelectedShape(const TopoDS_Shape& ShapeShape) override;

    //获取当前第一个Shape
    const TopoDS_Solid& getFirstSelected();

    //Shape的方式返回
    std::vector<TopoDS_Shape> getSelectedShapes();

    //检查元素是否合法
    bool isDataValid();

    //删除已选中的元素
    bool deleteSelectedShape(const TopoDS_Shape& shape) override;

    //清除所有选中
    void clearSelectedShape();

    //
    const TopoDS_Shape& getSelectedShape() override;



private:

    std::vector<TopoDS_Shape> m_selectedShapes;

};


#endif //OCCT_CAD_OCCSHAPESELECTOR_H#pragma once
#pragma once
